home *** CD-ROM | disk | FTP | other *** search
/ LOGIC Apps / Logic-APPLE_II_APPS.iso / mac / LOGIC Apple II 5.25" Library - ProDOS / PRO002.dsk / CALCULATOR.bas < prev    next >
BASIC Source File  |  2012-02-16  |  3KB  |  111 lines

  1. 10  PRINT  CHR$(27);: PRINT  CHR$(17): REM  40 COL.
  2. 20  TEXT : HOME 
  3. 30 V = 1: GOSUB 40:V = 24: GOSUB 40: GOTO 60
  4. 40  VTAB (V): HTAB (1): FOR X = 1 TO 39: PRINT "_";: NEXT 
  5. 50  RETURN 
  6. 60  VTAB (5): HTAB (7)
  7. 70  PRINT "[ THIS PROGRAM IS FREEWARE ]"
  8. 80  PRINT : PRINT : HTAB (4)
  9. 90  PRINT "YOU ARE FREE TO DISTRIBUTE COPIES"
  10. 100  PRINT : HTAB (8)
  11. 110  PRINT "BUT YOU MAY NOT SELL THEM."
  12. 120  VTAB (18): HTAB (11)
  13. 130  PRINT "THE FREEWARE PROJECT"
  14. 140  PRINT : HTAB (11)
  15. 150  PRINT "WALDEN SOFTWARE, INC."
  16. 160  PRINT : HTAB (12)
  17. 170  PRINT "(C) 1984, P. LUTUS"
  18. 180  FOR PAUSE = 0 TO 2500: NEXT 
  19. 190  DIM S(4):F = 57.29577951
  20. 200 R$ = "XYZT"
  21. 210 C$ = "+  -  *  /  E  1/XXY SINCOSTANATNLOGEXPSQR^  PI F  ?  "
  22. 220  IF SV = 0  THEN  HOME :SV = 1
  23. 230  VTAB (1): HTAB (1)
  24. 240  PRINT "FreeWare RPN Calculator": PRINT 
  25. 250  FOR X = 4 TO 1  STEP  -1
  26. 260  PRINT  MID$ (R$,X,1);" = ";
  27. 270  PRINT S(X);"               "
  28. 280  NEXT 
  29. 290  PRINT 
  30. 300  INPUT "Enter (?=Help) :";L$
  31. 310  IF L$ = ""  THEN 220
  32. 320  GOSUB 850
  33. 330  IF  LEN(L$) <3  THEN L$ = L$ +" ": GOTO 330
  34. 340 C = 1
  35. 350  IF L$ =  MID$ (C$,C,3)  THEN 370
  36. 360 C = C +3: IF C < LEN(C$)  THEN 350
  37. 370  IF C < LEN(C$)  THEN 410
  38. 380  GOSUB 480
  39. 390 S(1) =  VAL(L$)
  40. 400  GOTO 220
  41. 410  GOSUB 420: GOTO 220
  42. 420 C = ((C -1)/3) +1
  43. 430  ON C GOTO 440,450,460,470,480,500,510,520,530,540,550,560,570,580,590,600,620,690
  44. 440 S(1) = S(2) +S(1): GOTO 840
  45. 450 S(1) = S(2) -S(1): GOTO 840
  46. 460 S(1) = S(2) *S(1): GOTO 840
  47. 470 S(1) = S(2)/S(1): GOTO 840
  48. 480  FOR X = 3 TO 1  STEP  -1
  49. 490 S(X +1) = S(X): NEXT : RETURN 
  50. 500 S(1) = 1/S(1): RETURN 
  51. 510 T = S(1):S(1) = S(2):S(2) = T: RETURN 
  52. 520 S(1) =  SIN(S(1)/F): RETURN 
  53. 530 S(1) =  COS(S(1)/F): RETURN 
  54. 540 S(1) =  TAN(S(1)/F): RETURN 
  55. 550 S(1) =  ATN(S(1)) *F: RETURN 
  56. 560 S(1) =  LOG(S(1)): RETURN 
  57. 570 S(1) =  EXP(S(1)): RETURN 
  58. 580 S(1) =  SQR(S(1)): RETURN 
  59. 590 S(1) = S(2) ^S(1): GOTO 840
  60. 600  GOSUB 480
  61. 610 S(1) = 3.1415926535898: RETURN 
  62. 620  HOME :SV = 0
  63. 630 N = S(1): FOR X = 2 TO  SQR(N)
  64. 640 Q = N/X: IF Q < > INT(Q)  THEN 660
  65. 650  PRINT N;" / ";X;" = ";N/X
  66. 660  NEXT 
  67. 670  PRINT : PRINT "(Return) :";
  68. 675  GET L$
  69. 680  RETURN 
  70. 690  HOME :SV = 0
  71. 700  PRINT "Available Functions :"
  72. 710  PRINT : PRINT "Numeric Entries 1E-38 TO 1E38"
  73. 720  PRINT 
  74. 730  FOR X = 1 TO  LEN(C$)  STEP 3
  75. 740  PRINT  MID$ (C$,X,3)
  76. 750  NEXT 
  77. 760  VTAB (5)
  78. 770  RESTORE 
  79. 780  FOR X = 1 TO 18
  80. 790  READ L$
  81. 800  HTAB (8)
  82. 810  PRINT L$
  83. 820  NEXT 
  84. 830  GOTO 670
  85. 840 S(2) = S(3):S(3) = S(4): RETURN 
  86. 850 M$ = L$
  87. 860 L$ = ""
  88. 870  FOR X = 1 TO  LEN(M$)
  89. 880 Q =  ASC( MID$ (M$,X,1))
  90. 890  IF Q >96  THEN Q = Q -32
  91. 900 L$ = L$ + CHR$(Q)
  92. 910  NEXT 
  93. 920  RETURN 
  94. 930  DATA "Add X and Y" 
  95. 940  DATA "Subtract X from Y" 
  96. 950  DATA "Multiply X and Y"
  97. 960  DATA "Divide Y by X" 
  98. 970  DATA "Enter (make a copy of X)" 
  99. 980  DATA "Invert X" 
  100. 990  DATA "Exchange X and Y" 
  101. 1000  DATA "Sine of X (Degrees)"
  102. 1010  DATA "Cosine of X"
  103. 1020  DATA "Tangent of X"
  104. 1030  DATA "Arctangent of X"
  105. 1040  DATA "Natural Logarithm of X" 
  106. 1050  DATA "Natural Exponent of X"
  107. 1060  DATA "Square Root of X"
  108. 1070  DATA "Y Raised to the X Power"
  109. 1080  DATA "3.14159266"
  110. 1090  DATA "Factors of X"
  111. 1100  DATA "This list"